package com.atguigu.service;

import com.atguigu.entity.TrackInfo;
import com.atguigu.vo.AlbumTrackListVo;
import com.atguigu.vo.TrackListVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 声音信息 服务类
 * </p>
 *
 * @author Joe
 * @since 2024-11-15
 */
public interface TrackInfoService extends IService<TrackInfo> {
    //新增声音
    void saveTrackInfo(TrackInfo trackInfo);

    //修改声音
    void updateTrackInfoById(TrackInfo trackInfo);


    //删除声音
    void deleteTrackInfo(Long trackId);

    //分页查询声音
    IPage<AlbumTrackListVo> getAlbumDetailTrackByPage(IPage<AlbumTrackListVo> pageParam, Long albumId);

    List<TrackListVo> getTrackVoList(List<Long> trackIdList);

    //获取需要购买的声音
    List<Map<String, Object>> getTrackListToChoose(Long trackId);

    //获取即将购买的声音
    List<TrackInfo> getTrackPrepareToBuy(Long trackId, Integer buyNum);
}
